$(function() {
	var importData = null;
	var selectBaseDialog = null;
	zTree = null;
	//角色拥有按钮权限
	initButton();
	init();
	Datetime();
	//页面初始化调用方法
});
function init() {
	//1.初始化Table
	var oTable = new TableInit();
	oTable.Init();
	caseTypeList = null;
	//初始化查询区类型下拉框的值
	caseTypeInit($("#caseTypeSearch"), true);
	//初始化左侧基本用例树
	//树形图setting配置
	setting = {
			view: {
				showLine: true, //是否显示节点之间的连线
				fontCss: {
					'color': 'black',
					'font-weight': 'normal',
					'font-family': 'Microsoft YaHei'
				}, //字体样式函数
	            addDiyDom: addDiyDom
			},
			data: {
				simpleData: { //简单数据模式
					enable: true,
					idKey: "id",
					pIdKey: "pId",
					rootPId: "0"
				},keep: {
					parent: true
				}
			},
			callback: {
				onClick: function(event, treeId, treeNode) {
					var id = treeNode.id;
					var name = treeNode.name;
					if (treeNode.level==0) {
						$('#caseNameSearch').val("");
						$('#caseNumberSearch').val("");
						$('#caseTypeSearch').val(id);
						$('#caseTypeSearch').find("option[text='"+name+"']").attr("selected",true);
						$("#caseTypeSearchundefined").val(name);
						$("#caseTables").bootstrapTable('refreshOptions',localStorage.getItem("currentCasePage")?parseInt(localStorage.getItem("currentCasePage")):1);
					} else if(!treeNode.isParent) {
						$('#caseNameSearch').val(name);
						$('#caseNumberSearch').val();
						$('#caseTypeSearch').val("");
						$("#caseTypeSearchundefined").val("请选择");
						$("#caseTables").bootstrapTable('refreshOptions',localStorage.getItem("currentCasePage")?parseInt(localStorage.getItem("currentCasePage")):1);
					}
				}
			}
	};
	onLoadZTree(null);
}

function addDiyDom(treeId, treeNode) {
	var aObj = $("#" + treeNode.tId + "_ico");
	if (treeNode.isParent) return;
	var editStr = "";
	aObj.removeClass("button ico_docu");
	if(treeNode.type==0){//人工编辑
		editStr +="<img src='../../images/tree/bjyl.png' style='vertical-align: text-bottom;' alt=''/>"; 
	}else if(treeNode.type==1){//手工录制
		editStr +="<img src='../../images/tree/luzhi.png' style='vertical-align: text-bottom;' alt=''/>"; 
	}
	aObj.append(editStr);	
};
var TableInit = function() {
	var oTableInit = new Object();
	//初始化Table
	oTableInit.Init = function() {
		$('#caseTables').bootstrapTable({
			url: '../../../basecase/queryBaseCaseList', //请求后台的URL（*）
			method: "POST",
			contentType: "application/x-www-form-urlencoded",
			toolbar: "#toolbar",
			striped: true, //是否显示行间隔色
			cache: false, //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination: true, //是否显示分页（*）
			sortable: true, //是否启用排序
			checkboxHeader: true, //是否显示表头的全选
			queryParamsType: "undefined", //排序方式
			queryParams: oTableInit.queryParams, //传递参数（*）
			sidePagination: "server", //分页方式：client客户端分页，server服务端分页（*）
			pageNumber: localStorage.getItem("currentCasePage")?parseInt(localStorage.getItem("currentCasePage")):1, //初始化加载第一页，默认第一页
			pageSize: 10, //每页的记录行数（*）
			pageList: [10, 25, 50, 100], //可供选择的每页的行数（*）
			smartDisplay:false,
			sortName: "CREATE_TIME",
			sortOrder: "DESC",
			search: false, //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch: true,
			showColumns: true, //是否显示所有的列
			minimumCountColumns: 2, //最少允许的列数
			clickToSelect: true, //是否启用点击选中行
			height: 550, //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId: "ID", //每一行的唯一标识，一般为主键列
			showToggle: true, //是否显示详细视图和列表视图的切换按钮
			cardView: false, //是否显示详细视图
			detailView: false,
			singleSelect: false,
			onDblClickRow: function(item, $element) { //双击事件，item为该行数据
				window.location.href = "baseCaseEdite.html?baseCaseId=" + item.ID+"&state="+item.STATUS;
			},
			onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	            });
	        },
	        onPageChange:function(number,size){
	        	console.log(number);
	        },
			responseHandler: function(res) {
				return getTableData(res);
			}, //是否显示父子表
			columns: [{
				checkbox: true,
				title: "选择",
				width: 30
			}, {
				field: 'CODE',
				title: '基本用例编号',
				sortable: true, //是否可排序
				order: "desc", //默认排序方式
				width: 150,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
					}
			}, {
				field: 'NAME',
				title: '基本用例名称',
				width: 150,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
					}
				
			}, {
				field: 'TNAME',
				title: '基本用例类型',
				width: 150
			},{
				field: 'SNAME',
				title: '状态',
				width: 120
			},{
				field: 'DATA_SOURCE',
				title: '数据来源',
				width: 120,
				formatter: dataSource
			},{
				field: 'VERSION',
				title: '版本',
				width: 50
			}, {
				field: 'CONTENT',
				title: '基本用例描述',
				width: 350,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
					}
			}, {
				field: 'IS_DEL',
				title: '版本状态',
				width: 80,
				formatter: versionStatus
			}, {
				field: 'CREATE_USER',
				title: '创建人',
				width: 100
			}, {
				field: 'DEP_NAME',
				title: '创建人部门',
				width: 100
			}, {
				field: 'CREATE_TIME',
				title: '创建日期',
				width: 150
			}, {
				field: 'AUDITOR',
				title: '审核人',
				width: 100
			}, {
				field: 'AUDIT_TIME',
				title: '审核时间',
				width: 150
			}, {
				field: 'OPINION',
				title: '审核意见',
				width: 250,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
					}
			}]
		});
	};

	//得到查询的参数
	oTableInit.queryParams = function(params) {
		localStorage.setItem("currentCasePage", params.pageNumber);
		var temp = { //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize, pageNumber, searchText, sortName, sortOrder
			pageSize: params.pageSize, //页面大小
			pageNumber: params.pageNumber, //页码
			sortName: params.sortName,
			sortOrder: params.sortOrder,
			caseName: $('#caseNameSearch').val(),
			code: $('#caseNumberSearch').val(),
			type: $('#caseTypeSearch').val(),
			createUser:$('#createrSearch').val(),
			startTime : $("#astsSysLogLoginTime input").val(),
			endTime : $("#astsSysLogEndTime input").val(),
		};
		return temp;
	};
	return oTableInit;
};

function versionStatus(value, row, index) {
	if (row['IS_DEL'] == "0") {
		return "启用";
	} else {
		return "禁用";
	}
}
function dataSource(value, row, index) {
	if (row['DATA_SOURCE'] == "0") {
		return "人工编辑";
	} else {
		return "手工录制";
	}
}

var addBaseCaseId;
//删除基本用例信息
function deleteBaseCase() {
	var selectCases = $("#caseTables").bootstrapTable('getSelections');
	if (selectCases.length == 0) {
		warning("请选择要删除的基本用例信息!");
	} else {
		if (selectCases.length == 1) {
			var caseId = selectCases[0].ID;
			var caseName = selectCases[0].NAME;
			deleteBootStrapShow(caseId, caseName,null,onLoadZTree);
		} else {
			deleteMoreBootStrapShow(selectCases);
		}
	}
}
//删除多条基本用例提示框，传入参数为基本用例id 集合
function deleteMoreBootStrapShow(selectCases) {
	BootstrapDialog.show({
		title: '提示',
		message: "您确定要删除吗?",
		buttons: [{
			icon: 'glyphicon glyphicon-check',
			label: '确定',
			cssClass: 'btn-primary',
			autospin: true,
			action: function(dialogRef) {
				dialogRef.close();
				for (var i = 0; i < selectCases.length; i++) {
					var caseId = selectCases[i].ID;
					var caseName = selectCases[i].NAME;
					deleteBaseCaseAjax(caseId, caseName);
				}
			}
		}, {
			label: '取消',
			action: function(dialogRef) {
				dialogRef.close();
			}
		}]
	});
}
//删除单条基本用例提示框，传入参数为基本用例id
function deleteBootStrapShow(caseId, caseName,node,callback) {
	BootstrapDialog.show({
		title: '提示',
		message: "您确定要删除["+caseName+"]吗?",
		buttons: [{
			icon: 'glyphicon glyphicon-check',
			label: '确定',
			cssClass: 'btn-primary',
			autospin: true,
			action: function(dialogRef) {
				dialogRef.close();
				$.ajax({
					url: "../../../basecase/deleteBaseCase",
					type: "POST",
					data: {
						"caseId": caseId,
						"caseName": caseName
					},
					success: function(data) {
						var flag = data.flag;
						if (flag == 0) {
							var content = "基本用例信息删除成功!";
							success(content);
							(callback && typeof(callback) === "function") && callback(node); 
							$("#caseTables").bootstrapTable('refreshOptions',localStorage.getItem("currentCasePage")?parseInt(localStorage.getItem("currentCasePage")):1);
						} else if (flag == 1) {
							var content = "此用例在使用中，无法删除用例！";
							warning(content);
						} else if (flag == 2) {
							var content = "不是本用户不能删除用例！";
							warning(content);
						} else if (flag == 3) {
							var content = "已发布用例无法删除！";
							warning(content);
						}
					},
					error: function(data) {
						var content = "基本用例信息删除失败!";
						danger(content);
					}
				});

			}
		}, {
			label: '取消',
			action: function(dialogRef) {
				dialogRef.close();
			}
		}]
	});
}
//删除用例Ajax
function deleteBaseCaseAjax(caseId, caseName) {
	console.log(caseName);
	$.ajax({
		url: "../../../basecase/deleteBaseCase",
		type: "POST",
		data: {
			"caseId": caseId,
			"caseName": caseName
		},
		success: function(data) {
			var flag = data.flag;
			if (flag == 0) {
				var content = "基本用例信息删除成功!";
				success(content);
				$("#caseTables").bootstrapTable('refreshOptions',localStorage.getItem("currentCasePage")?parseInt(localStorage.getItem("currentCasePage")):1);
			} else if (flag == 1) {
				var content = "此用例在使用中，无法删除用例！";
				warning(content);
			} else if (flag == 2) {
				var content = "不是本用户不能删除用例！";
				warning(content);
			} else if (flag == 3) {
				var content = "已发布用例无法删除！";
				warning(content);
			}
		},
		error: function(data) {
			var content = "基本用例信息删除失败!";
			danger(content);
		}
	});
}

//加载zTree树形图
function onLoadZTree(node) {
	var treeNodes;
	var caseName = $('#rush').val();
	$.ajax({
		async: false, //是否异步
		cache: false, //是否使用缓存
		data: {
			name: caseName,
			pid:0,
			base:true
		},
		type: 'POST', //请求方式：post
		dataType: 'json', //数据传输格式：json
		url: "../../../basecaseTree/queryBaseCaseTree", //请求路径
		error: function() {
			//请求失败处理函数
			danger('请求失败！');
		},
		success : function(data) {
			// 请求成功后处理函数
			if (data.flag== 0) {
			    zTree = $("#tree");
				zTree = $.fn.zTree.init(zTree, setting, data.content);
				if(node!=null){
					//展开特定的节点并选中此节点
				   var a = zTree.expandNode(node,true,true);
				   var childrens = node.children;
				   if(childrens){
					   for ( var i=0;i<childrens.length;i++){
						   zTree.expandNode(childrens[i],true,true);
					   }
				   }
				    zTree.selectNode(node);
				}
			} else {
				danger(data.errorInfo);
			}
		}
	});
}
function addBaseCaseTree() {
	var selectedNodes = zTree.getSelectedNodes();
	if(selectedNodes.length==0){
		warning("请在树上选中需要的分类节点");
		return;
	}else if(!selectedNodes[0].isParent){
		warning("您不能选择文件内容，请选择文件夹选项进行添加");
		return;
	}
	BootstrapDialog.show({
		title: '新增基本用例树节点',
		draggable: true,
		closable: false,
		message: $("<form class='form-inline' style='height:100px'><div class='form-group col-md-10 col-md-offset-1' style='margin-top:10px'>"
                 +"<label class='form-label'>所属节点名称：</label> <input id='name1' disabled=true type='text' class='form-control' style='width:300px'></div>"
                 +"<div class='form-group col-md-10 col-md-offset-1' style='margin-top:10px'><label class='form-label'>新增节点名称：</label><input id='name2' type='text' class='form-control' style='width:300px'></div></form>"),
		onshown: function() {
			$("#name1").val(selectedNodes[0].name);
		},
		buttons: [{
			icon: 'glyphicon glyphicon-check',
			label: '确定',
			cssClass: 'btn-primary',
			autospin: true,
			action: function(dialogRef) {
				var name = $("#name2").val().trim();
				var pid = selectedNodes[0].id;
				if (name == "") {
					warning("请填写节点名称!");
					return ;
				}
				$.ajax({
					data: {
						name: name,
						pid:pid
					},
					type: 'POST', //请求方式：post
					dataType: 'json', //数据传输格式：json
					url: "../../../basecaseTree/addBaseCaseTree", //请求路径
					error: function() {
						//请求失败处理函数
						danger('请求失败！');
					},
					success : function(data) {
						var newNodes = {id:data.content,name:name,pId:pid,isParent:true};
						zTree.addNodes(selectedNodes[0],newNodes);
						dialogRef.close();
						info("新增基本用例树节点成功！");
					}
				});
			}
		}, {
			label: '取消',
			action: function(dialogRef) {
				dialogRef.close();
			}
		}]
	});
}
function editeBaseCaseTree() {
	var selectedNodes = zTree.getSelectedNodes();
	if(selectedNodes.length==0){
		warning("请在树上选中需要修改的分类节点");
		return;
	}else if(selectedNodes[0].level==0){
		warning("不能修改根节点信息");
		return;
	}else if(!selectedNodes[0].isParent){
		warning("您不能选择文件内容，请选择文件夹选项进行修改");
		return;
	}else{
		BootstrapDialog
		.show({
			title : '修改基本用例树节点名称',
			draggable : true,
			closable : false,
			message : $("<form class='form-inline' style='height:80px'>"
					+ "<div class='form-group col-md-10 col-md-offset-1' style='margin-top:10px'><label class='form-label'>节点名称：</label><input id='name' type='text' class='form-control' style='width:300px'></div></form>"),
			onshown : function() {
				$("#name").val(selectedNodes[0].name);
			},
			buttons : [ {
				icon : 'glyphicon glyphicon-check',
				label : '确定',
				cssClass : 'btn-primary',
				autospin : true,
				action : function(dialogRef) {
					var name = $("#name").val().trim();
					var id = selectedNodes[0].id;
					if (name == "") {
						warning("请填写节点名称!");
						return;
					}
					$.ajax({
						data : {
							id : id,
							name : name
						},
						type : 'POST', // 请求方式：post
						dataType : 'json', // 数据传输格式：json
						url : "../../../basecaseTree/updateBaseCaseTree", // 请求路径
						error : function() {
							// 请求失败处理函数
							danger('请求失败！');
						},
						success : function(data) {
							selectedNodes[0].name=name;
							zTree.updateNode(selectedNodes[0]);
							dialogRef.close();
							info("修改基本用例树节点名称成功！");
						}
					});
				}
			}, {
				label : '取消',
				action : function(dialogRef) {
					dialogRef.close();
				}
			} ]
		});
	}
}
function deleteBaseCaseTree() {
	var selectedNodes = zTree.getSelectedNodes();
	if(selectedNodes.length==0){
		warning("请在树上选中要删除的节点信息");
		return;
	}else if(selectedNodes.length==1){
		//不能删除根节点和叶子节点
		if(selectedNodes[0].level==0){
			warning("不能删除根节点信息");
			return;
		}else if(!selectedNodes[0].isParent){
			deleteBootStrapShow(selectedNodes[0].id,selectedNodes[0].name,selectedNodes[0].getParentNode(),onLoadZTree);
			return;
		}else{
			var selectId = selectedNodes[0].id;
			var pid = selectedNodes[0].pId;
			BootstrapDialog.show({
				title: '提示',
				message: "您确定要删除吗?点击删除按钮将只会删除此节点数据，点击级联删除按钮将会删除此节点以及节点下的所有数据，请慎重考虑后选择按钮进行操作！",
				buttons: [{
					icon: 'glyphicon glyphicon-check',
					label: '删除',
					cssClass: 'btn-primary',
					autospin: true,
					action: function(dialogRef) {
						dialogRef.close();
						$.ajax({
							data: {
								id: selectId,
								pid:pid,
								type:0
							},
							type: 'POST', //请求方式：post
							dataType: 'json', //数据传输格式：json
							url: "../../../basecaseTree/deleteBaseCaseTree", //请求路径
							error: function() {
								//请求失败处理函数
								danger('请求失败！');
							},
							success : function(data) {
								onLoadZTree(selectedNodes[0].getParentNode());
							}
						});
					}
				}, {
					icon: 'glyphicon glyphicon-check',
					label: '级联删除',
					cssClass: 'btn-primary',
					autospin: true,
					action: function(dialogRef) {
						dialogRef.close();
						$.ajax({
							data: {
								id: selectId,
								pid:pid,
								type:1
							},
							type: 'POST', //请求方式：post
							dataType: 'json', //数据传输格式：json
							url: "../../../basecaseTree/deleteBaseCaseTree", //请求路径
							error: function() {
								//请求失败处理函数
								danger('请求失败！');
							},
							success : function(data) {
								onLoadZTree(selectedNodes[0].getParentNode());
							}
						});
					}
				}, {
					label: '取消',
					action: function(dialogRef) {
						dialogRef.close();
					}
				}]
			});
	}
}
}
//切换树节点的展开和折叠
function unfoldTree(){
	if($("#changeFile")[0].title=="展开所有节点"){
		$("#changeFile")[0].title="折叠所有节点";
		$("#changeFile span").removeClass("glyphicon glyphicon-folder-open");
		$("#changeFile span").addClass("glyphicon glyphicon-folder-close");
		zTree.expandAll(true);
	}else{
		$("#changeFile")[0].title="展开所有节点";
		$("#changeFile span").removeClass("glyphicon glyphicon-folder-close");
		$("#changeFile span").addClass("glyphicon glyphicon-folder-open");
		zTree.expandAll(false);
	}
}
function exportFile(index) {
	var idString = "";
	//导出所选
		var selectClass = $('#caseTables').bootstrapTable('getSelections');
		if(selectClass.length<=0){
			danger('请选择要导出的基本用例！');
			return;
		}
		for(var i = 0;i<selectClass.length;i++){
			if(i<selectClass.length-1){
				idString = idString+selectClass[i].ID+',';
			}else{
				idString = idString+selectClass[i].ID;
			}
		}
	window.location.href = "../../../basecase/exportBaseCaseJson?caseId=" + idString;
}

/**
 * 导入文件
 */
function importFile() {
	document.getElementById("file-upload").click();
}
/**
 * 选择文件后传到后台进行解密，并将解密后的数据传回
 */
function selectFile() {
	var formData = new FormData($("#uploadForm")[0]);
	$.ajax({
		url: "../../../basecase/decryptBaseCaseFile",
		type: 'POST',
		data: formData,
		async: false,
		cache: false,
		contentType: false,
		processData: false,
		success: function(returndata) {
			//获取解密后的文件
			if (returndata.flag == 0) {
				
				if(returndata.content.length>0){
					importData = returndata.content;
					selectImportFileDi();
				}else{
					danger("无可导入基本用例或者导入的基本用例已经存在！");
				}
			}else{
				danger(returndata.errorInfo);
			}
		},
		error: function(returndata) {
			console.log(returndata);
		}
	});
	$('#file-upload').val("");
}
//真正导入，首先获取用户选择的东西。
function importFileStepTwo() {
	var arrayIndex = [];
	$('input:checkbox[name=checkItem]:checked').each(function(i){
		arrayIndex.push(Number($(this).parent().parent()[0].id.split('_')[1]));
	});
	if(arrayIndex.length<=0){
		danger("请选择要导入的基本用例！");
		return;
	}
	for (var index = 0; index < importData.length; index++) {
		for(var j = 0;j<arrayIndex.length;j++){
			if(arrayIndex[j] == index){
				var imp = importData[index];
				$.ajax({
					async: false, //是否异步
					cache: false, //是否使用缓存
					data: {
						baseCaseString: JSON.stringify(imp)
					},
					type: 'POST', //请求方式：post
					dataType: 'json', //数据传输格式：json
					url: "../../../basecase/uploadBaseCaseFile", //请求路径
					error: function(e) {
						//请求失败处理函数
						danger("导入失败！");
						console.log(e);
					},
					success: function(data) {
						//请求成功后处理函数
						selectBaseDialog.close();
						$("#caseTables").bootstrapTable('refreshOptions',localStorage.getItem("currentCasePage")?parseInt(localStorage.getItem("currentCasePage")):1);
						var t = BootstrapDialog.alert({
							title: '提示',
							message: "导入成功!",
							type: BootstrapDialog.TYPE_SUCCESS
						});
						setTimeout(function() {
							t.close();
						}, 800);
					}
				});
				console.log(imp);
			}
		}
	}
}

function initButton() {
	var add = document.getElementById("btn_add");
	var deleteBtn = document.getElementById("btn_delete");
	var noRealDeleteBtn = document.getElementById("btn_noRealDelete");
	if (roleButton().indexOf("jbylbj") != -1) {
		add.style.display = "block";
	}
	if (roleButton().indexOf("jbylsc") != -1) {
		deleteBtn.style.display = "block";
		noRealDeleteBtn.style.display = "block";
	}
}


//选择要导入的基本用例
function selectImportFileDi() {
	selectBaseDialog = BootstrapDialog.show({
		title: '导入基本用例信息',
		message: $("<form class='form-inline' style='height:300px'></form>").load('selectBaseListView.html'),
		onshown: function() {
			initTableCheckbox();
		},
		buttons: [{
			icon: 'glyphicon glyphicon-check',
			label: '确定',
			cssClass: 'btn-primary',
			autospin: true,
			action: function(dialogRef) {
				importFileStepTwo();
			}
		}, {
			label: '取消',
			action: function(dialogRef) {
				dialogRef.close();
			}
		}]
	});
}

//更新可以导入的基本用例
function initTableCheckbox() {
	var htmlData= "";
	for(var i = 0;i<importData.length;i++){
		htmlData = htmlData+"<tr id=selectTr_"+i+"><td>"+importData[i].id+"</td><td>"+importData[i].code+"</td>"+
		"<td>"+importData[i].name+"</td></tr>";
	}
	$('#tableTbody').html(htmlData);
	var $thr = $('#selectTr');
	var $checkAllTh = $('<th><input type="checkbox" id="checkAll" name="checkAll" /></th>');
	/*将全选/反选复选框添加到表头最前，即增加一列*/
	$thr.prepend($checkAllTh);
	/*“全选/反选”复选框*/
	var $checkAll = $thr.find('input');
	$checkAll.click(function(event) {
		/*将所有行的选中状态设成全选框的选中状态*/
		$tbr.find('input').prop('checked', $(this).prop('checked'));
		/*并调整所有选中行的CSS样式*/
		if($(this).prop('checked')) {
			$tbr.find('input').parent().parent().addClass('warning');
		} else {
			$tbr.find('input').parent().parent().removeClass('warning');
		}
		/*阻止向上冒泡，以防再次触发点击操作*/
		event.stopPropagation();
	});
	/*点击全选框所在单元格时也触发全选框的点击操作*/
	$checkAllTh.click(function() {
		$('#selectBaseTable').find('input').click();
	});
	var $tbr = $('#tableTbody').find('tr');
	var $checkItemTd = $('<td><input type="checkbox" name="checkItem" /></td>');
	/*每一行都在最前面插入一个选中复选框的单元格*/
	$tbr.prepend($checkItemTd);
	/*点击每一行的选中复选框时*/
	$tbr.find('input').click(function(event) {
		/*调整选中行的CSS样式*/
		$(this).parent().parent().toggleClass('warning');
		/*如果已经被选中行的行数等于表格的数据行数，将全选框设为选中状态，否则设为未选中状态*/
		$checkAll.prop('checked', $tbr.find('input:checked').length == $tbr.length ? true : false);
		/*阻止向上冒泡，以防再次触发点击操作*/
		event.stopPropagation();
	});
	/*点击每一行时也触发该行的选中操作*/
	$tbr.click(function() {
		$(this).find('input').click();
	});
}


//显示当前基本用例关联的序列
function relevance(){
	var selectClass = $('#caseTables').bootstrapTable('getSelections');
	if(selectClass.length<=0){
		warning('请选择要查看的基本用例！');
		return;
	}
	if(selectClass.length>=2){
		warning('请选择一个基本用例！');
		return;
	}
	BootstrapDialog.show({
		title: '关联序列',
		message: $("<form class='form-inline' style='height:500px'></form>").load('baseRelevanceSequence.html'),
		onshown: function() {
			showRelevance(selectClass[0].ID);
		},
		buttons: [{
			label: '确定',
			action: function(dialogRef) {
				dialogRef.close();
			}
		}]
	});
}

//显示基本用例关联的序列信息
function showRelevance(id){
	var relevanceTable = new RelevanceTableInit(id);
	relevanceTable.Init();
}

var RelevanceTableInit = function(id) {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$("#testRelevanceTables").bootstrapTable({
			url : '../../../basecase/getSequenceByCaseId', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 默认limit
			queryParams : {caseId:id},// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10,25], // 可供选择的每页的行数（*）
			sortName : "sequenceName",
			sortOrder : "DESC",
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			showColumns : false, // 是否显示所有的列
			clickToSelect : true, // 是否启用点击选中行
			height : 500, // 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			showToggle : false, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			responseHandler : function(res) {
				if(res.flag==0){
					return {
						"total" : res.content.length,// 总页数
						"rows" : res.content
					};
				}else{
					danger(res.errorInfo);
				}
			},
			onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	            });
	        }, // 是否显示父子表
			columns : [{
				field : 'sequenceName',
				title : '测试序列名称',
				width: 180,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
				}
			},{
				field : 'sequenceCode',
				title : '测试序列编号',
				width: 180,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
				}
			},{
				field : 'describe',
				title : '测试序列描述',
				width: 180,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
				}
			}]
		});
	};
	return oTableInit;
};

//检验时间空间输入的
function set_Time_value(th) {// th this用来获取属性值，ys就是整个元素对象
	if (!checkDateTime($(th).val())) {// 输入的时间格式校验
		$(th).val('');
		return;
	}
}
//时间格式校验
function checkDateTime(date) {
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
	var r = date.match(reg);
	if (r != null || date == '') {
		return true;
	} else {
		warning("输入格式不正确，请按yyyy-MM-dd HH:mm:ss的格式输入！");
		return false;
	}
}

//设置日期时间控件
function Datetime() {
	$('#datetimepicker2').datetimepicker({
		language : 'zh-CN',// 显示中文
		format : 'yyyy-mm-dd hh:ii:ss',// 显示格式
		minView : 0,// 设置只显示到月份
		initialDate : new Date(),
		autoclose : true,// 选中自动关闭
		todayBtn : true,// 显示今日按钮
		locale : moment.locale('zh-cn'),
	}).on('changeDate', function(ev) {
		$('#timeSearch').val(formatDateTime(Number(ev.date.valueOf())));
	});
	$('#datetimepickerEnd2').datetimepicker({
		language : 'zh-CN',// 显示中文
		format : 'yyyy-mm-dd hh:ii:ss',// 显示格式
		minView : 0,// 设置只显示到月份
		initialDate : new Date(),
		autoclose : true,// 选中自动关闭
		todayBtn : true,// 显示今日按钮
		locale : moment.locale('zh-cn'),
	}).on('changeDate', function(ev) {
		$('#timeSearch2').val(formatDateTime(Number(ev.date.valueOf())));
	});
}

function formatDateTime(inputTime) {
	var date = new Date(inputTime);
	var y = date.getFullYear();
	var m = date.getMonth() + 1;
	m = m < 10 ? ('0' + m) : m;
	var d = date.getDate();
	d = d < 10 ? ('0' + d) : d;
	var h = date.getHours();
	h = h < 10 ? ('0' + h) : h;
	var minute = date.getMinutes();
	var second = date.getSeconds();
	minute = minute < 10 ? ('0' + minute) : minute;
	second = second < 10 ? ('0' + second) : second;
	return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}

//假删除
function noRealDeleteBaseCase(){
	var selectVersion = $("#caseTables").bootstrapTable('getSelections');
	console.log(selectVersion);
	if (selectVersion.length == 0) {
		var content = "请选择要删除的基本用例!";
		info(content);
	} else {
		BootstrapDialog.show({
			title: '提示',
			message: "您确定要删除吗?",
			buttons: [{
				icon: 'glyphicon glyphicon-check',
				label: '确定',
				cssClass: 'btn-primary',
				autospin: true,
				action: function(dialogRef) {
					dialogRef.close();
					noDelectFun(selectVersion[0].ID,1);
				}
			}, {
				label: '取消',
				action: function(dialogRef) {
					dialogRef.close();
				}
			}]
		});
	}
}

function noDelectFun(id,statu){
	$.ajax({
		"url" : "../../../basecase/updateDelStatusByCaseId",
		"type" : "post",
		"data" : { 
			caseId:id,
			isDel:statu
		},
		"dataType" : "json",
		"success" : function(result) {
			console.log(result);
			if(result.flag==0){
				success(result.content);
				$("#caseTables").bootstrapTable('refreshOptions',localStorage.getItem("currentCasePage")?parseInt(localStorage.getItem("currentCasePage")):1);
			}else{
				warning(result.errorInfo);
			}
		},
		"error" : function(data) {
			warning(data.errorInfo);
		}
	});
}

//相识度
function semblanceFun(){
	var selectClass = $('#caseTables').bootstrapTable('getSelections');
	if(selectClass.length !=2){
		warning('请选择两个基本用例！');
		return;
	}
	
	$.ajax({
		"url" : "../../../basecase/getSimilarityByCaseId",
		"type" : "post",
		"data" : { 
			caseId1:selectClass[0].ID,
			caseId2:selectClass[1].ID
		},
		"dataType" : "json",
		"success" : function(result) {
			console.log(result);
			if(result.flag==0){
				success("相似度："+result.content);
			}else{
				warning(result.errorInfo);
			}
		},
		"error" : function(data) {
			warning(data.errorInfo);
		}
	});
}